package tagklassen;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;

import jtoxsig.IdGenerator;


public class Process
{
	private String isClosed;
	private String isExecutable;
	private String name;
	private String processType;
	private List<StartEvent> startevent;
	private List<EndEvent> endevent;
	private List<Task> task;
	private List<SequenceFlow> sequeflow;	
	private List<ExclusiveGateway> exgate;
	private List<LaneSet> laneset;
	private String id;

	public Process()
	{
		id = IdGenerator.getId();
		
		startevent = new ArrayList<StartEvent>();
		task = new ArrayList<Task>();
		sequeflow = new ArrayList<SequenceFlow>();	
		exgate = new ArrayList<ExclusiveGateway>();
		laneset = new ArrayList<LaneSet>();
		endevent = new ArrayList<EndEvent>();
		
		isClosed = "false";
		isExecutable = "false";
		processType = "None";
	}
	
	@XmlAttribute
	public String getId()
	{
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	@XmlAttribute
	public String getIsClosed() {
		return isClosed;
	}

	public void setIsClosed(String isClosed) {
		this.isClosed = isClosed;
	}

	@XmlAttribute
	public String getIsExecutable() {
		return isExecutable;
	}

	public void setIsExecutable(String isExecutable) {
		this.isExecutable = isExecutable;
	}

	@XmlAttribute
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@XmlAttribute
	public String getProcessType() {
		return processType;
	}

	public void setProcessType(String processType) {
		this.processType = processType;
	}

// Alle Elemente der Klassen ExclusiveGateway, SequenceFlow, StartEvent, Task und LaneSet
	
	@XmlElement (name = "startEvent")
	public List<StartEvent> getStartevent() {
		return startevent;
	}

	public void setStartevent(List<StartEvent> startevent) {
		this.startevent = startevent;
	}	
	
	@XmlElement (name = "endEvent")
	public List<EndEvent> getEndevent() {
		return endevent;
	}

	public void setEndevent(List<EndEvent> endevent) {
		this.endevent = endevent;
	}
	
	@XmlElement (name = "task")
	public List<Task> getTask() {
		return task;
	}	
	
	public void setTask(List<Task> task) {
		this.task = task;
	}

	@XmlElement (name = "sequenceFlow")
	public List<SequenceFlow> getSequeflow() {
		return sequeflow;
	}

	public void setSequeflow(List<SequenceFlow> sequeflow) {
		this.sequeflow = sequeflow;
	}

	@XmlElement (name = "exclusiveGateway")
	public List<ExclusiveGateway> getExgate() {
		return exgate;
	}

	public void setExgate(List<ExclusiveGateway> exgate) {
		this.exgate = exgate;
	}

	@XmlElement (name = "laneSet")
	public List<LaneSet> getLaneset() {
		return laneset;
	}

	public void setLaneset(List<LaneSet> laneset) {
		this.laneset = laneset;
	}
	
	
}
